﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Common.Msg
{
    public interface ILogger
    {
        string AppName { get; }
        string AppVersion { get; }
        string ServerName { get; }
        void InitConfigByFile(string configPath,string logName = "", string appName = "", string appVersion = "", string serverName = "");
        void InitConfig(string configContent,string logName = "", string appName = "", string appVersion = "", string serverName = "");
        object GetLogMessage(string logLevel, string message, object Data, Exception exception);




        void Debug(string message);
        void Debug(string message, Exception exception);
        void Debug(string message,object Data, Exception exception = null);

        

        void Error(string message);
        void Error(string message, Exception exception);
        void Error(string message, object Data, Exception exception = null);


        
        void Fatal(string message);
        void Fatal(string message, Exception exception);
        void Fatal(string message, object Data, Exception exception = null);

        

        void Info(string message);
        void Info(string message, Exception exception);
        void Info(string message, object Data, Exception exception=null);



        void Warn(string message);
        void Warn(string message, Exception exception);
        void Warn(string message, object Data, Exception exception=null);
    }
}
